﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SistemaGO_Library.Entidades.Cancelamento
{
    class CadastroCancelamento
    {
        private IRepositorioCancelamento cancelamentos;

        public CadastroCancelamento(IRepositorioCancelamento repCan){
            this.cancelamentos = repCan;
        }

        public void inserirCancelamento(Cancelamento can) {
            if (can != null && !cancelamentos.existeCancelamento(can.Cancelamento_cod)) {
                cancelamentos.inserirCancelamento(can);
            } else {
                throw new Exception("Cancelamento Já Existente ou Nulo");
            }
        }

        public Cancelamento buscarCancelamento(int cod) {
            Cancelamento can = new Cancelamento();
            can = null;
            if (cancelamentos.existeCancelamento(cod)) {
                can = cancelamentos.buscarCancelamento(cod);
            } else {
                throw new Exception("Cancelamento Não Encontrado");
            }
            return can;
        }

        public void alterarCancelamento(int cod, Cancelamento novoCancelamento) {
            if (cancelamentos.existeCancelamento(cod)) {
                cancelamentos.alterarCancelamento(cod, novoCancelamento);
            } else {
                throw new Exception("Erro ao alterar cancelamento");
            }
        }
        
        public void excluirCancelamento(int cod) {
            if (cod < 0) {
                throw new Exception("Erro ao excluir cancelamento");
            } else {
                cancelamentos.excluirCancelamento(cod);
            }
        }
    }
}
